//package com.juyu.miliao.scheduler.service;
//
//import com.juyu.miliao.common.constant.OnlineUserRedis;
//import com.juyu.miliao.scheduler.dao.mysql.UserInfoDao;
//import com.juyu.miliao.scheduler.dao.redis.LineTimeRedisDao;
//import com.juyu.miliao.scheduler.domin.User;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Set;
//
//import static java.util.Comparator.comparing;
//import static java.util.stream.Collectors.toList;
//
///**
// *  在线男女用户定时器
// * @Auther: 卜加超
// * @Date: 2019/2/25 10:11
// * @Description:
// */
//@Component
//public class QualityOnLineCacheService {
//    private final Logger qualityOnLineCacheLogger = LoggerFactory.getLogger("QualityOnLineCache");
//    @Resource
//    private UserInfoDao userInfoDao;
//    @Resource
//    private StringRedisTemplate stringRedisTemplate;
//    @Resource
//    private LineTimeRedisDao lineTimeRedisDao;
//
//
//    @Scheduled(fixedDelay = 1000 * 30, initialDelay = 1000 * 15)
//    public void executeSchedulerJob() {
//        try {
//            OnLineGirlUsersQuartz  onLineGirlUsersQuartz = new OnLineGirlUsersQuartz();
//            onLineGirlUsersQuartz.call();
//            OnLineBoyUsersQuartz  onLineBoyUsersQuartz = new OnLineBoyUsersQuartz();
//            onLineBoyUsersQuartz.call();
//        } catch (Exception e) {
//            qualityOnLineCacheLogger.error("qualityOnLine error={}", e);
//        }
//    }
//
//    //发现-最新未认证的女用户(在线在上离线在下)
//    public class OnLineGirlUsersQuartz {
//        private void call() {
//            qualityOnLineCacheLogger.info("--发现--在线女用户排行榜排序查询开始：");
//            /** 查询发现列表 */
//            Set<String> range = lineTimeRedisDao.getOLineBySex(2,0,200);
//            if(range.size()==0)
//                return;
//            List<Long> listNew= range.stream().map(Long::parseLong).collect(toList());
//            List<User> onLineGirlUsersList = userInfoDao.getOnLineGirlUsersList(listNew);
//            if (onLineGirlUsersList.size()>0) {
//                List<User> lineUserList = onLineGirlUsersList.stream()
//                        .sorted(comparing(User::getmGradeSum).reversed())
//                        .collect(toList());
//                //存储girlList列表的用户id
//                List<String> list1 = lineUserList.stream().map(User::getUserId).map(String::valueOf).collect(toList());
//                stringRedisTemplate.delete("onLineUsers:sex:2");
//                stringRedisTemplate.opsForList().rightPushAll("onLineUsers:sex:2", list1);
//                /** 清除缓存 */
//                for (int j = 1; j < 30; j++) {
//                    stringRedisTemplate.delete("onLineUsersCache::2:" + j);
//                }
//            }
//            qualityOnLineCacheLogger.info("--发现--在线女排行榜排序查询结束：");
//        }
//
//    }
//    //发现-最新未认证的男用户(在线在上离线在下)
//    public class OnLineBoyUsersQuartz {
//        private void call() {
//            qualityOnLineCacheLogger.info("--发现--在线男用户排行榜排序查询开始：");
//            //获取在线男用户
//            Set<String> range = lineTimeRedisDao.getOLineBySex(1,0,200);
//            if(range.size()==0)
//                return;
//            List<Long> listNew= range.stream().map(Long::parseLong).collect(toList());
//            List<User> boyUsersList = userInfoDao.getOnLineBoyUsersList(listNew);
//            if (boyUsersList.size()>0) {
//                List<User> lineUserList = boyUsersList.stream()
//                        .sorted(comparing(User::getvGradeSum).reversed())
//                        .collect(toList());
//                List<String> list1 = lineUserList.stream().map(User::getUserId).map(String::valueOf).collect(toList());
//                stringRedisTemplate.delete("onLineUsers:sex:1");
//                stringRedisTemplate.opsForList().rightPushAll("onLineUsers:sex:1", list1);
//                /** 清除缓存 */
//                for (int j = 1; j < 30; j++) {
//                    stringRedisTemplate.delete("onLineUsersCache::1:" + j);
//                }
//            }
//            qualityOnLineCacheLogger.info("--发现--在线男排行榜排序查询结束：");
//        }
//    }
//
//}
